const fs  = require('fs')
const { get } = require('http')
const path = require('path')
const { json } = require('stream/consumers')

const url = path.join(__dirname,'./data.json')

//获取数据
// getData()
function getData(){
    fs.readFile(url,'utf-8',(err,data)=>{
        if(err) return console.log(err.message)
        //转换成对象
        let obj = JSON.parse(data)
        console.log(obj)
    })
}

// 添加数据
// addData({
//     author:'邹华龙',
//     bookname:'法外狂徒',
//     publisher:'武汉人民出版社'
// })
function addData(obj) {
    if(obj ===undefined)  return console.log('请输入内容')
    fs.readFile(url,'utf-8',(err,data)=>{
        if(err)  return console.log(err.message)
        let arr = JSON.parse(data)
    
        obj.id = arr[arr.length-1].id+1
        arr.push(obj)
        //写入文件
        fs.writeFile(url,JSON.stringify(arr),err=>{
            if(err) return console.log(err.message)
            console.log('恭喜你，添加图书成功！')
        })
    })
}

//删除数据
// delData()
function delData(id){
    //获取信息
    fs.readFile(url,'utf-8',(err,data)=>{
        if(err) return console.log(err.message)
        console.log('获取数据成功')
        let arr = JSON.parse(data)//转换为对象
        //如果没有满足条件的就放入一个新数组
        let newArr = arr.filter((err)=>{
            if(err.id!=id)  return true 
        })
        //添加信息的文件中
        fs.writeFile(url,JSON.stringify(newArr),err=>{
            if(err)   return console.log(err.message)
            console.log('恭喜你，删除成功')
        })
    })
}


修改数据
updateData({
    "author": "华龙",
    "bookname": "法外狂徒",
    "publisher": "武汉人民出版社",
    "id": 5
})
function updateData(obj){
    //读取文件信息
    fs.readFile(url,'utf-8',(err,data)=>{
        if(err)  return console.log(err.message)
        //获取成功后转换成对象类型
        let arr = JSON.parse(data)
        let index = arr.findIndex(ele=>{
            if(obj.id ==ele.id) return true
        })//查询元素的下标
        //替换元素
        arr.splice(index,1,obj)
        //替换后的元素返回数据
        fs.writeFile(url,JSON.stringify(arr),err=>{
            if(err) return console.log(err.message)
            console.log('修改成功')
        })

    })
}